Several Unified Communications (UC) applications have proliferated into the enterprise communications market. These UC clients may provide many communication tools across multiple devices and media types including audio, video, collaboration (shared whiteboard, application sharing), instant messaging, and also unified messaging (SMS, Voicemail, and Fax). Some examples of commonly used UC clients include Skype, Microsoft Lync, Mirial SoftClient, Vidyo, Avaya, Cisco IP Communicator, etc.
Many of these UC clients have a requirement that they must be usable with hardware devices that can be installed on a Windows Operating System without requiring any additional driver software to be installed. Where USB drivers are used, this means that audio devices must support the standard Windows USB audio driver. In addition, a limitation of the Windows Operating System is that UC clients are generally developed to use only a single audio device. This prevents a UC client from using multiple interface/output devices concurrently.
One limitation of conventional UC clients is that because there are no standards for telephony and UC client specific telephony controls (dial, hangup, mute, etc.), each vendor has developed a proprietary method for implementing these types of commands. For example, Skype uses a methodology in which an API provides the control interface to the client, whereas Microsoft Lync interprets USB HID commands directly from the device. Thus, different UC clients use different interface methodologies for volume and call control functions (e.g.; dialpad, on'off hook, etc.). As a result, hardware interface supporting these UC clients require different firmware and/or software interfaces to support each unique client. The result is that audio device manufacturers must provide UC client specific firmware/software with their hardware devices to enable all of their features to work with each specific UC client.
In addition, if an end user wishes to easily create a multi-party bridged conference call between users registered on different UC clients (e.g. between a user on Lync and another user on Skype), there is no current facility to enable this type of functionality.
The present disclosure includes embodiments that resolve many of the issues found in the art of Unified Communications (UC). Specifically, embodiments are described for implementing a UC bridging architecture wherein a virtual audio device driver interface routes audio streams to a mixer/router interface and also acts to translate vendor specific Human Interface Device (HID) commands to a common format. An HID command translator can be configured to translate commands from the common format to a device specific set of commands. By utilizing a unifying UC architecture, multiple different device firmware implementations are not required to support various UC clients. Furthermore, audio bridging/mixing/routing functionality can be incorporated to allow audio bridging between UC clients, thereby expanding the capability and flexibility of the UC platform and increasing the value of the audio peripherals attached to the system. The present disclosure additionally includes embodiments that allow UC clients to share common interface devices, such as USB audio peripherals, regardless of different HID command implementations.
Other embodiments of the invention include methods, systems, and apparatuses for bridging communications between unified communications (UC) clients. The apparatus may include a UC client driver module with a set of UC client drivers configured to translate UC client specific human interface device (HID) commands to a common format. A UC audio assistant module may be configured to receive the HID commands in the common format and to translate the HID commands from the common format into a device specific format. A device specific driver module with a set of device specific drivers can be configured to pass the HID commands in the device specific format to an output device.
In a further embodiment, the UC audio assistant module is further configured to perform a mix-minus methodology on a UC client audio stream. In one embodiment, the set of UC client drivers comprise virtual audio device drivers. In yet a further embodiment, the set of UC client drivers is configured to translate UC client specific human interface device commands from a plurality of types of UC clients.
In one embodiment, the method includes: receiving a set of HID commands from a UC client; translating the set of HID commands to a common format; translating the set of HID commands from the common format to an output device specific format; and passing the set of HID commands in the output device specific format to a corresponding output device driver.
In another embodiment, the present disclosure discloses a method, system, and apparatus for bridging communications between unified communications (UC) clients. Included herein is a UC client driver module with a set of UC client drivers configured to translate UC client specific human interface device (HID) commands to a common format. Also included is a UC audio assistant module configured to receive the HID commands in the common format and translate the HID commands from the common format into a device specific format. A device specific driver module with a set of device specific drivers is configured to pass the HID commands in the device specific format to an output device.